package com.huabo.contract.service;

import com.hbfk.util.JsonBean;
import com.hbfk.util.PageInfo;
import com.huabo.contract.mysql.entity.TblCyhwUnitMySql;
import com.huabo.contract.oracle.entity.TblCyhwUnit;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;


public interface TblCyhwUnitService {
    void findCollectionChoiceContract(PageInfo<TblCyhwUnit> pageInfo, BigDecimal pid,String contractno,String contractname);

    void findMySqlCollectionChoiceContract(PageInfo<TblCyhwUnitMySql> pageInfo, BigDecimal pid, String contractno, String contractname);

    Map<String, Object> findListContractBiangengBypageInfo(String token, String flowId, String staffId, Integer pageNumber, Integer pageSize, TblCyhwUnit cyhwUnit);

    Map<String, Object> findMySqlListContractBiangengBypageInfo(String token, String flowId, String staffId, Integer pageNumber, Integer pageSize, TblCyhwUnitMySql cyhwUnit);

    Map<String, Object> findLedgerListPageInfo(String token, String staffId, String startdate, String enddate, Integer pageNumber, Integer pageSize, TblCyhwUnit unit);

    Map<String, Object> findMySqlLedgerListPageInfo(String token, String staffId, String startdate, String enddate, Integer pageNumber, Integer pageSize, TblCyhwUnitMySql unit);

    List<TblCyhwUnit> findLedgerListForExport(TblCyhwUnit unit);

    List<TblCyhwUnitMySql> findMySqlLedgerListForExport(TblCyhwUnitMySql unit);

    Map<String, Object> saveCyhwUnit(TblCyhwUnit tcu, String attids, String staffId, String token, String flowId);

    Map<String, Object> saveMySqlCyhwUnit(TblCyhwUnitMySql tcu, String attids, String staffId, String token, String flowId);

    Integer getStatueById(Integer contractId);

    Map<String, Object> SubmitForApproval(BigDecimal contractId, String token, String staffId, String examination, String flowId);

    Map<String, Object> removeCyhwUnit(Integer contractId);

    Map<String, Object> toSptzglInfojc(String contractId, String cyId, String flowId, String token, String staffId) throws Exception;

    Map<String, Object> viewOppsiteActiviti(String contractId,String taskId);

    void findPaymentChoiceContract(PageInfo<TblCyhwUnit> pageInfo, TblCyhwUnit unit);

    void findMySqlPaymentChoiceContract(PageInfo<TblCyhwUnitMySql> pageInfo, TblCyhwUnitMySql unit);

    TblCyhwUnit getEntity(BigDecimal contractid);

    TblCyhwUnitMySql getMySqlEntity(BigDecimal contractid);

    Map<String, Object> findListWindowOpenByPageInfo(Integer pageNumber, Integer pageSize, String recordType, String token, String staffId,String budgetname,String counterpartno);

    TblCyhwUnit findContractById(Integer contractId);

    TblCyhwUnitMySql findContractByMySqlId(Integer contractId);

    void modifyContractStatus(BigDecimal historyStatus, Integer currentStatus, BigDecimal contractId);

    void updateModifyContractStatus(BigDecimal hiscontractstatus, BigDecimal hiscontractstatus1, BigDecimal contractid);

    Map<String, Object> htglTjsp(BigDecimal contractId, String examination, String token, String staffId);

    Map<String,Object> findeContractInfo(BigDecimal flowId, String flowname, Integer contractId, Integer cflag, String token, String staffId);

    Map<String, Object> findContractSealList(Integer pageNumber,Integer pageSize,String cateId, String flowid, String isFlowdb, String choose, String token, String staffId, TblCyhwUnit unit);

    Map<String, Object> findMySqlContractSealList(Integer pageNumber,Integer pageSize,String cateId, String flowid, String isFlowdb, String choose, String token, String staffId, TblCyhwUnitMySql unit);

    void modifyContrac(BigDecimal hiscontractstatus, BigDecimal i, BigDecimal contractid);

    void modifyContract(BigDecimal hiscontractstatus, BigDecimal hiscontractstatus1, BigDecimal contractid);

    Map<String, Object> findeFilContractList(Integer pageNumber, Integer pageSize, String flowid, String token, String staffId, TblCyhwUnit unit);

    Map<String, Object> findeMySqlFilContractList(Integer pageNumber, Integer pageSize, String flowid, String token, String staffId, TblCyhwUnitMySql unit);

    Map<String, Object> updBasicUnitinspectionStatue(Integer contractId,String flowname);

    Map<String, Object> updateContractStatus(String contractId, String status);

    Map<String, Object> findeContractListByContractStaff(String flowId, Integer pageNumber, Integer pageSize, String token, String staffId, TblCyhwUnit unit);

    Map<String, Object> findeMySqlContractListByContractStaff(String flowId, Integer pageNumber, Integer pageSize, String token, String staffId, TblCyhwUnitMySql unit);

    Map<String, Object> findeContractListPerformanceTracking(String flowId, Integer pageNumber, Integer pageSize, String token, String staffId, TblCyhwUnit unit);

    Map<String, Object> findeMySqlContractListPerformanceTracking(String flowId, Integer pageNumber, Integer pageSize, String token, String staffId, TblCyhwUnitMySql unit);

    Map<String, Object> findFulfillmentContract(String flowId, Integer pageNumber, Integer pageSize, String token, String staffId, TblCyhwUnit unit);

    Map<String, Object> findMySqlFulfillmentContract(String flowId, Integer pageNumber, Integer pageSize, String token, String staffId, TblCyhwUnitMySql unit);

    Map<String, Object> contractExcuteContractId(String contractId, String status);

    Map<String, Object> modifyContractStatus(String contractId, Integer goalStatus);

    void findLegalContractListByPageInfo(PageInfo<TblCyhwUnit> pageInfo, TblCyhwUnit tcu);

    void findMySqlLegalContractListByPageInfo(PageInfo<TblCyhwUnitMySql> pageInfo, TblCyhwUnitMySql tcu);

    void saveCyhwUnitTcu(TblCyhwUnit tcu);

    void saveMySqlCyhwUnitTcu(TblCyhwUnitMySql tcu);

    void updateTcu(TblCyhwUnit tcu);
    void updateCyhwUnitNoDescrpib(TblCyhwUnit tcu);
    void updateMySqlTcu(TblCyhwUnitMySql tcu);

    Map<String, Object> findListByXdf(PageInfo<TblCyhwUnit> pageInfo, String budgetid);

    Map<String, Object> findListByMySqlXdf(PageInfo<TblCyhwUnitMySql> pageInfo, String budgetid);

    Map<String, Object> findListContractBiangengBypage(PageInfo<TblCyhwUnit> pageInfo, BigDecimal orgid, String userid, boolean findByModuel);

    Map<String, Object> findListContractBiangengByMySqlpage(PageInfo<TblCyhwUnitMySql> pageInfo, BigDecimal orgid, String userid, boolean findByModuel);

    void findListByPageInfo(PageInfo<TblCyhwUnit> pageInfo, BigDecimal orgid);

    void findListByMySqlPageInfo(PageInfo<TblCyhwUnitMySql> pageInfo, BigDecimal orgid);

    void findListByPage(PageInfo<TblCyhwUnit> pageInfo, String userid, BigDecimal orgid);

    void findListByMySqlPage(PageInfo<TblCyhwUnitMySql> pageInfo, String userid, BigDecimal orgid);

    List<TblCyhwUnit> findListBy(Integer budgetid);

    List<TblCyhwUnitMySql> findListByMySql(Integer budgetid);

    List<TblCyhwUnit> findContractTemp(String token, String contractType) throws Exception;

    List<TblCyhwUnitMySql> findMySqlContractTemp(String token, String contractType) throws Exception;

    Map<String, Object> findContractDes(String budgetId);

    TblCyhwUnit findContractMoneyById(BigDecimal contractid);

    TblCyhwUnitMySql findContractMoneyByMySqlId(BigDecimal contractid);


//    Map<String, Object> findByUnitID(Integer contractid);
    
    
	//相对方信息接口同步
	Map<String, Object> oppsiteInfogetList(String startDate,String orgid) throws Exception;
	
	
	//合同附件接口同步
     Map<String, Object> contractFjInfo(Integer contractid) throws Exception;

	JsonBean checkLendStatus(String token, String contractId) throws Exception;

	String findecontracFlowIdByContractId(Integer contractid) throws Exception;
}
